---
title: MessageFormatting
summary: API reference for MessageFormatting.
status: draft
owner: SAIF BOF documentation team
last_reviewed: 2026-08-21
library: SAIF.Application
reference_type: embedded
---

# MessageFormatting

`MessageFormatting` is a standalone, static (all-`Shared`) utility for concatenating an array of messages into a single display string, de-duplicating embedded line-break sequences first. It is independent of `AppManagerBase.Message` — no code in this library wires the two together ([Accumulate and format display messages](../../operations/accumulate-and-format-display-messages.md)).

## Purpose
- Concatenate a supplied message array into a single string suitable for Windows (CRLF-separated), Web (`<BR>`-separated), or caller-defined-separator display, after stripping embedded CRLF/`<BR>` sequences from each message.

## Context
- Namespace: `SAIF.Application`
- Assembly/package: `SAIF.Application` (embedded library)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `GetMessagesForWindows` | `Public Shared Function GetMessagesForWindows(inMessages As String()) As String` | Builds a CRLF-separated display string from the supplied messages. |
| `GetMessagesForWeb` | `Public Shared Function GetMessagesForWeb(inMessages As String()) As String` | Builds a `<BR>`-separated display string from the supplied messages. |
| `GetMessagesUserDefined` | `Public Shared Function GetMessagesUserDefined(inMessages As String(), inSeparator As String) As String` | Builds a display string from the supplied messages using a caller-supplied separator. |
| `BuildMessageString` | `Public Shared Function BuildMessageString(inMessages As String(), inSeparator As String) As String` | Shared helper that performs the actual de-duplication and concatenation logic used by the three `GetMessagesFor*` methods. |
| `AppendMessageString` | `Public Shared Sub AppendMessageString(...)` | Appends a message to an existing display string using the given separator. |

## Behavioral notes
- `RemoveReturns` (private Shared) strips embedded CRLF/`<BR>` sequences from each message before concatenation; it is an internal implementation detail not part of the public surface.
- This utility operates independently of `AppManagerBase.Message`; combining the two requires explicit caller wiring.*

## Constraints and usage notes
- All members are `Shared`; this class is not intended to be instantiated for per-instance state.

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `SAIF.Application\MessageFormatting.vb`
